// 字符串数字,都是小写
// 默认 是将所有的ts 一起运行的
// 同一个目录的不同文件下使用同一个变量名称出现报错
// 是因为ts的文件默认是全局文件
// 发现即使在标签栏关闭 也无法解决， 
// 可以尝试在 报错的文件上加上   export{}，即可完美解决 
export { }
// 对象的约束
let obj: { name: string, age: number }
obj = {
  name: "智囊撒",
  age: 10
}

// ? age属性可选,有没有都可以
let obj1: { name: string, age?: number }
obj1 = {
  name: "智囊撒",
  age: 10
}


// name 属性必须有 propName可以是任何名字,其他属性都可以
let obj2: { name: string, [propName: string]: any }
obj2 = {
  name: "智囊撒",
  age: 10
}


interface Point {
  readonly x: number;
  readonly y: number;
}
let p1: Point = { x: 10, y: 20 };
// p1.x = 5; // error!

console.log(typeof obj);



